table of contents
SYSCALLS(2) | п═я┐п╨п╬п╡п╬п╢я│я┌п╡п╬ п©я─п╬пЁя─п╟п╪п╪п╦я│я┌п╟ Linux | SYSCALLS(2) |
п≤п°п╞¶
syscalls - я│п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ Linux
п·п▒п≈п·п═¶
п║п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ Linux.
п·п÷п≤п║п░п²п≤п∙¶
п║п╦я│я┌п╣п╪п╫я▀п╧ п╡я▀п╥п╬п╡ — я█я┌п╬ п╬я│п╫п╬п╡п╫п╬п╧ п╦п╫я┌п╣я─я└п╣п╧я│ п╪п╣п╤п╢я┐ п©я─п╦п╩п╬п╤п╣п╫п╦п╣п╪ п╦ я▐п╢я─п╬п╪ Linux.
п║п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ п╦ п╬п╠я▒я─я┌п╬я┤п╫я▀п╣ п╠п╦п╠п╩п╦п╬я┌п╣я┤п╫я▀п╣ я└я┐п╫п╨я├п╦п╦¶
п·п╠я▀я┤п╫п╬, я│п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ п╫п╣ п╡я▀п╥я▀п╡п╟я▌я┌я│я▐ п╫п╟п©я─я▐п╪я┐я▌, я█я┌п╬ п╢п╣п╩п╟п╣я┌я│я▐ я┤п╣я─п╣п╥ п╬п╠я▒я─я┌п╬я┤п╫я┐я▌ я└я┐п╫п╨я├п╦я▌ п╦п╥ glibc (п╦п╩п╦ п╢я─я┐пЁп╬п╧ п╠п╦п╠п╩п╦п╬я┌п╣п╨п╦). п÷п╬п╢я─п╬п╠п╫п╣п╧ п╬ п╫п╣п©п╬я│я─п╣п╢я│я┌п╡п╣п╫п╫п╬п╪ п╡я▀п╥п╬п╡п╣ я│п╦я│я┌п╣п╪п╫п╬пЁп╬ п╡я▀п╥п╬п╡п╟, я│п╪. intro(2). п╖п╟я│я┌п╬, п╫п╬ п╫п╣ п╡я│п╣пЁп╢п╟, п╦п╪я▐ п╬п╠я▒я─я┌п╬я┤п╫п╬п╧ я└я┐п╫п╨я├п╦п╦ я│п╬п╡п©п╟п╢п╟п╣я┌ я│ п╦п╪п╣п╫п╣п╪ я│п╦я│я┌п╣п╪п╫п╬пЁп╬ п╡я▀п╥п╬п╡п╟, п╨п╬я┌п╬я─я▀п╧ п╬п╫п╟ п╬я│я┐я┴п╣я│я┌п╡п╩я▐п╣я┌. п²п╟п©я─п╦п╪п╣я─, п╡ glibc п╣я│я┌я▄ я└я┐п╫п╨я├п╦я▐ truncate(), п╨п╬я┌п╬я─п╟я▐ п╬я│я┐я┴п╣я│я┌п╡п╩я▐п╣я┌ п╢п╣п╩п╟я▌я┴п╦п╧ п╡я│я▒ я─п╟п╠п╬я┌я┐ я│п╦я│я┌п╣п╪п╫я▀п╧ п╡я▀п╥п╬п╡ "truncate".
п╖п╟я│я┌п╬, п╬п╠я▒я─я┌п╬я┤п╫п╟я▐ я└я┐п╫п╨я├п╦я▐ glibc п╬я┤п╣п╫я▄ п╪п╟п╩п╣п╫я▄п╨п╟я▐, п╬п╫п╟ п©я─п╬я│я┌п╬ п╨п╬п©п╦я─я┐п╣я┌ п╟я─пЁя┐п╪п╣п╫я┌я▀ п╡ п╫я┐п╤п╫я▀п╣ я─п╣пЁп╦я│я┌я─я▀ п©п╣я─п╣п╢ п╥п╟п©я┐я│п╨п╬п╪ я│п╦я│я┌п╣п╪п╫п╬пЁп╬ п╡я▀п╥п╬п╡п╟, п╟ п╥п╟я┌п╣п╪ п©я─п╦я│п╡п╟п╦п╡п╟п╣я┌ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ errno п╥п╫п╟я┤п╣п╫п╦п╣, п╨п╬я┌п╬я─п╬п╣ п╠я▀п╩п╬ п╡п╬п╥п╡я─п╟я┴п╣п╫п╬ я│п╦я│я┌п╣п╪п╫я▀п╪ п╡я▀п╥п╬п╡п╬п╪. (п╜я┌п╦ я┌п╣ п╤п╣ я┬п╟пЁп╦ п╡я▀п©п╬п╩п╫я▐п╣я┌ syscall(2), п╣я▒ п╪п╬п╤п╫п╬ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п╢п╩я▐ п╬я│я┐я┴п╣я│я┌п╡п╩п╣п╫п╦я▐ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡, п╢п╩я▐ п╨п╬я┌п╬я─я▀я┘ п╫п╣я┌ п╬п╠я▒я─я┌п╬я┤п╫я▀я┘ я└я┐п╫п╨я├п╦п╧.) п≈п╟п╪п╣я┤п╟п╫п╦п╣: я│п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ я┐п╨п╟п╥я▀п╡п╟я▌я┌, я┤я┌п╬ п©я─п╬п╦п╥п╬я┬п╩п╟ п╬я┬п╦п╠п╨п╟ п╡п╬п╥п╡я─п╟я┴п╟я▐ п╬я┌я─п╦я├п╟я┌п╣п╩я▄п╫п╬п╣ я├п╣п╩п╬п╣ я┤п╦я│п╩п╬ п╡я▀п╥я▀п╡п╟я▌я┴п╣п╧ я│я┌п╬я─п╬п╫п╣; п╨п╬пЁп╢п╟ я█я┌п╬ п©я─п╬п╦я│я┘п╬п╢п╦я┌, п╬п╠я▒я─я┌п╬я┤п╫п╟я▐ я└я┐п╫п╨я├п╦я▐ п╪п╣п╫я▐п╣я┌ п╥п╫п╟п╨ я┐ п╡п╬п╥п╡я─п╟я┴я▒п╫п╫п╬пЁп╬ п╥п╫п╟я┤п╣п╫п╦я▐ (п╫п╟ п©п╬п╩п╬п╤п╦я┌п╣п╩я▄п╫я▀п╧), п╨п╬п©п╦я─я┐п╣я┌ п╣пЁп╬ п╡ errno п╦ п╡п╬п╥п╡я─п╟я┴п╟п╣я┌ -1 п╡я▀п╥п╡п╟п╡я┬п╣п╧ п╬п╠я▒я─я┌п╨я┐ я└я┐п╫п╨я├п╦п╦.
п≤п╫п╬пЁп╢п╟, п╬п╢п╫п╟п╨п╬, п╬п╠я▒я─я┌п╬я┤п╫п╟я▐ я└я┐п╫п╨я├п╦я▐ п©я─п╬п╦п╥п╡п╬п╢п╦я┌ п╢п╬п©п╬п╩п╫п╦я┌п╣п╩я▄п╫я┐я▌ я─п╟п╠п╬я┌я┐ п╢п╬ п╬я│я┐я┴п╣я│я┌п╡п╩п╣п╫п╦я▐ я│п╦я│я┌п╣п╪п╫п╬пЁп╬ п╡я▀п╥п╬п╡п╟. п²п╟п©я─п╦п╪п╣я─, п╡ п╫п╟я│я┌п╬я▐я┴п╣п╣ п╡я─п╣п╪я▐ я│я┐я┴п╣я│я┌п╡я┐п╣я┌ (п©п╬ п©я─п╦я┤п╦п╫п╟п╪, п╬п©п╦я│п╟п╫п╫я▀п╪ п╢п╟п╩п╣п╣) п╢п╡п╟ п©п╬я┘п╬п╤п╦я┘ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╟ — truncate(2) п╦ truncate64(2); п╬п╠я▒я─я┌п╬я┤п╫п╟я▐ я└я┐п╫п╨я├п╦я▐ glibc truncate() п©я─п╬п╡п╣я─я▐п╣я┌ п╨п╟п╨п╬п╧ п╦п╥ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡ п©я─п╣п╢п╬я│я┌п╟п╡п╩я▐п╣я┌ я▐п╢я─п╬ п╦ я─п╣я┬п╟п╣я┌ п╨п╟п╨п╬п╧ п╫я┐п╤п╫п╬ п╥п╟п╢п╣п╧я│я┌п╡п╬п╡п╟я┌я▄.
п║п©п╦я│п╬п╨ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡¶
п■п╟п╩п╣п╣ п©я─п╦п╡п╣п╢я▒п╫ я│п©п╦я│п╬п╨ я│п©п╦я│п╬п╨ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡, п©я─п╦я│я┐я┌я│я┌п╡я┐я▌я┴п╦я┘ п╫п╟ п╠п╬п╩я▄я┬п╦п╫я│я┌п╡п╣ п©п╩п╟я┌я└п╬я─п╪. п▓ п╨п╬п╩п╬п╫п╨п╣ п╞п╢я─п╬ я┐п╨п╟п╥п╟п╫п╟ п╡п╣я─я│п╦я▐ я▐п╢я─п╟ п╢п╩я▐ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡, п╨п╬я┌п╬я─я▀п╣ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ Linux 2.2, п╦ я│ п╨п╟п╨п╬п╧ п╦п╪п╣п╫п╫п╬ п╡п╣я─я│п╦п╦. п╒п╟п╨п╤п╣ п╥п╟п╪п╣я┌п╦п╪ я│п╩п╣п╢я┐я▌я┴п╣п╣:
- п∙я│п╩п╦ п╡п╣я─я│п╦я▐ я▐п╢я─п╟ п╫п╣ я┐п╨п╟п╥п╟п╫п╟, я┌п╬ я│п╦я│я┌п╣п╪п╫я▀п╧ п╡я▀п╥п╬п╡ п©п╬я▐п╡п╦п╩я│я▐ п╡ я▐п╢я─п╣ 1.0 п╦п╩п╦ п╠п╬п╩п╣п╣ я─п╟п╫п╫п╣п╪.
- п║п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀, п©п╬п╪п╣я┤п╣п╫п╫я▀п╣ "1.2", я│п╨п╬я─п╣п╣ п╡я│п╣пЁп╬ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ п╡ п╡п╣я─я│п╦я▐я┘ я▐п╢я─п╟ 1.1.x, п╦ п╡п©п╣я─п╡я▀п╣ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ я│я┌п╟п╠п╦п╩я▄п╫п╬п╪ я▐п╢я─п╣ 1.2. (п═п╟п╥я─п╟п╠п╬я┌п╨п╟ я▐п╢я─п╟ 1.2 п╫п╟я┤п╟п╩п╟я│я▄ я│ п╬я┌п╡п╣я┌п╡п╩п╣п╫п╦я▐ п╬я┌ я▐п╢я─п╟ 1.0.6 п╦ п©я─п╬я┬п╩п╟ п╫п╣я│п╨п╬п╩я▄п╨п╬ п╡я▀п©я┐я│п╨п╬п╡ я▐п╢п╣я─ 1.1.x.)
- п║п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀, п©п╬п╪п╣я┤п╣п╫п╫я▀п╣ "1.2", я│п╨п╬я─п╣п╣ п╡я│п╣пЁп╬ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ п╡ п╡п╣я─я│п╦я▐я┘ я▐п╢я─п╟ 1.3.x, п╦ п╡п©п╣я─п╡я▀п╣ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ я│я┌п╟п╠п╦п╩я▄п╫п╬п╪ я▐п╢я─п╣ 2.0. (п═п╟п╥я─п╟п╠п╬я┌п╨п╟ я▐п╢я─п╟ 2.0 п╫п╟я┤п╟п╩п╟я│я▄ я│ п╬я┌п╡п╣я┌п╡п╩п╣п╫п╦я▐ п╬я┌ я▐п╢я─п╟ 1.2.x, п╫п╟я┤п╦п╫п╟я▐, п©я─п╦п╠п╩п╦п╥п╦я┌п╣п╩я▄п╫п╬, я│ 1.2.10, п╦ п©я─п╬я┬п╩п╟ п╫п╣я│п╨п╬п╩я▄п╨п╬ п╡я▀п©я┐я│п╨п╬п╡ я▐п╢п╣я─ 1.3.x.)
- п║п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀, п©п╬п╪п╣я┤п╣п╫п╫я▀п╣ "2.2", я│п╨п╬я─п╣п╣ п╡я│п╣пЁп╬ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ п╡ п╡п╣я─я│п╦я▐я┘ я▐п╢я─п╟ 2.1.x, п╦ п╡п©п╣я─п╡я▀п╣ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ я│я┌п╟п╠п╦п╩я▄п╫п╬п╪ я▐п╢я─п╣ 2.2.0. (п═п╟п╥я─п╟п╠п╬я┌п╨п╟ я▐п╢я─п╟ 2.2 п╫п╟я┤п╟п╩п╟я│я▄ я│ п╬я┌п╡п╣я┌п╡п╩п╣п╫п╦я▐ п╬я┌ я▐п╢я─п╟ 2.0.21, п╦ п©я─п╬я┬п╩п╟ п╫п╣я│п╨п╬п╩я▄п╨п╬ п╡я▀п©я┐я│п╨п╬п╡ я▐п╢п╣я─ 2.1.x.)
- п║п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀, п©п╬п╪п╣я┤п╣п╫п╫я▀п╣ "2.4", я│п╨п╬я─п╣п╣ п╡я│п╣пЁп╬ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ п╡ п╡п╣я─я│п╦я▐я┘ я▐п╢я─п╟ 2.3.x, п╦ п╡п©п╣я─п╡я▀п╣ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ я│я┌п╟п╠п╦п╩я▄п╫п╬п╪ я▐п╢я─п╣ 2.4.0. (п═п╟п╥я─п╟п╠п╬я┌п╨п╟ я▐п╢я─п╟ 2.4 п╫п╟я┤п╟п╩п╟я│я▄ я│ п╬я┌п╡п╣я┌п╡п╩п╣п╫п╦я▐ п╬я┌ я▐п╢я─п╟ 2.2.8, п╦ п©я─п╬я┬п╩п╟ п╫п╣я│п╨п╬п╩я▄п╨п╬ п╡я▀п©я┐я│п╨п╬п╡ я▐п╢п╣я─ 2.3.x.)
- п║п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀, п©п╬п╪п╣я┤п╣п╫п╫я▀п╣ "2.6", я│п╨п╬я─п╣п╣ п╡я│п╣пЁп╬ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ п╡ п╡п╣я─я│п╦я▐я┘ я▐п╢я─п╟ 2.5.x, п╦ п╡п©п╣я─п╡я▀п╣ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ я│я┌п╟п╠п╦п╩я▄п╫п╬п╪ я▐п╢я─п╣ 2.6.0. (п═п╟п╥я─п╟п╠п╬я┌п╨п╟ я▐п╢я─п╟ 2.6 п╫п╟я┤п╟п╩п╟я│я▄ я│ п╬я┌п╡п╣я┌п╡п╩п╣п╫п╦я▐ п╬я┌ я▐п╢я─п╟ 2.4.15, п╦ п©я─п╬я┬п╩п╟ п╫п╣я│п╨п╬п╩я▄п╨п╬ п╡я▀п©я┐я│п╨п╬п╡ я▐п╢п╣я─ 2.5.x.)
- п²п╟я┤п╦п╫п╟я▐ я│ я▐п╢я─п╟ 2.6.0 п©п╬я─я▐п╢п╬п╨ я─п╟п╥я─п╟п╠п╬я┌п╨п╦ п╠я▀п╩ п╦п╥п╪п╣п╫я▒п╫, п╦ п╫п╬п╡я▀п╣ я│п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ п╪п╬пЁя┐я┌ п©п╬я▐п╡п╩я▐я┌я▄я│я▐ п╡ п╨п╟п╤п╢п╬п╪ п╡я▀п©я┐я│п╨п╣ 2.6.x. п▓ я█я┌п╬п╪ я│п╩я┐я┤п╟п╣ п╢п╩я▐ я│п╦я│я┌п╣п╪п╫п╬пЁп╬ п╡я▀п╥п╬п╡п╟ я┐п╨п╟п╥п╟п╫ я┌п╬я┤п╫я▀п╧ п╫п╬п╪п╣я─ п╡п╣я─я│п╦п╦.
- п≤п╫п╬пЁп╢п╟ я│п╦я│я┌п╣п╪п╫я▀п╧ п╡я▀п╥п╬п╡, п╢п╬п╠п╟п╡п╩п╣п╫п╫я▀п╧ п╡ я┌п╣п╨я┐я┴я┐я▌ п╫п╟ я┌п╬я┌ п╪п╬п╪п╣п╫я┌ я│я┌п╟п╠п╦п╩я▄п╫я┐я▌ п╡п╣я┌п╡я▄ я▐п╢я─п╟, п©п╣я─п╣п╫п╬я│п╦п╩я│я▐ п╡ п©я─п╣п╢я▀п╢я┐я┴п╦п╣ я│я┌п╟п╠п╦п╩я▄п╫я▀п╣ п╡п╣я┌п╡п╦ я▐п╢я─п╟. п²п╟п©я─п╦п╪п╣я─, п╫п╣п╨п╬я┌п╬я─я▀п╣ я│п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀, п╨п╬я┌п╬я─я▀п╣ п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ п╡ 2.6.x п╠я▀п╩п╦ п©п╣я─п╣п╫п╣я│п╣п╫я▀ п╦ п╡ п╡я▀п©я┐я│п╨п╦ 2.4.x, п╫п╟я┤п╦п╫п╟я▐ я│ 2.4.15. п∙я│п╩п╦ я█я┌п╬ п©я─п╬п╦п╥п╡п╬п╢п╦п╩п╬я│я▄, п╠я┐п╢я┐я┌ п©п╬п╨п╟п╥п╟п╫я▀ п╬я│п╫п╬п╡п╫я▀п╣ п╡п╣я─я│п╦п╦ п╬п╠п╣п╦я┘ п╡п╣я┌п╡п╣п╧ я▐п╢я─п╟.
п║п©п╦я│п╬п╨ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡, п╢п╬я│я┌я┐п©п╫я▀я┘ п╡ я▐п╢я─п╣ п╡п╣я─я│п╦п╦ 2.6.28 (п╦п╩п╦, п╡ п╫п╣п╨п╬я┌п╬я─я▀я┘ я│п╩я┐я┤п╟я▐я┘, я┌п╬п╩я▄п╨п╬ п╡ п╠п╬п╩п╣п╣ я│я┌п╟я─я▀я┘ я▐п╢я─п╟я┘):
п■п╩я▐ п╪п╫п╬пЁп╦я┘ п©п╩п╟я┌я└п╬я─п╪, п╡п╨п╩я▌я┤п╟я▐ i386, п╡я│п╣ я│п╬п╨п╣я┌п╫я▀п╣ п╡я▀п╥п╬п╡я▀ п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╦я─я┐я▌я┌я│я▐ (я│ п©п╬п╪п╬я┴я▄я▌ п╬п╠я▒я─я┌п╬я┤п╫я▀я┘ я└я┐п╫п╨я├п╦п╧ glibc) я┤п╣я─п╣п╥ socketcall(2), п╟ п©п╬п╢п╬п╠п╫я▀п╣ IPC п╡я▀п╥п╬п╡я▀ System V п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╦я─я┐я▌я┌я│я▐ я┤п╣я─п╣п╥ ipc(2).
п≈п░п°п∙п╖п░п²п≤п╞¶
п╒п╟п╨п╤п╣ п╥п╟п╪п╣я┌п╦п╪ я│п╩п╣п╢я┐я▌я┴п╣п╣:
- п╔п╬я┌я▐ п╢п╩я▐ п╫п╦я┘ п╦ п╥п╟я─п╣п╥п╣я─п╡п╦я─п╬п╡п╟п╫я▀ п╪п╣я│я┌п╟ п╡ я┌п╟п╠п╩п╦я├п╣ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡, я│п╩п╣п╢я┐я▌я┴п╦п╣ я│п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ п╫п╣ я─п╣п╟п╩п╦п╥п╬п╡п╟п╫я▀ п╡ я│я┌п╟п╫п╢п╟я─я┌п╫п╬п╪ я▐п╢я─п╣: afs_syscall(2), break(2), ftime(2), getpmsg(2), gtty(2), idle(2), lock(2), madvise1(2), mpx(2), phys(2), prof(2), profil(2), putpmsg(2), security(2), stty(2), tuxcall(2), ulimit(2) п╦ vserver(2) (я│п╪. я┌п╟п╨п╤п╣ unimplemented(2)). п·п╢п╫п╟п╨п╬ ftime(3), profil(3) п╦ ulimit(3) п╣я│я┌я▄ я│я─п╣п╢п╦ п╠п╦п╠п╩п╦п╬я┌п╣я┤п╫я▀я┘ я└я┐п╫п╨я├п╦п╧. п°п╣я│я┌п╬ п╢п╩я▐ phys(2) п╥п╟п╫я▐я┌п╬ п╫п╟я┤п╦п╫п╟я▐ я│ я▐п╢я─п╟ 2.1.116 п©п╬п╢ umount(2); phys(2) п╫п╦п╨п╬пЁп╢п╟ п╫п╣ п╠я┐п╢п╣я┌ я─п╣п╟п╩п╦п╥п╬п╡п╟п╫.
- п▓я▀п╥п╬п╡я▀ getpmsg(2) п╦ putpmsg(2) я│я┐я┴п╣я│я┌п╡я┐я▌я┌ п╡ я▐п╢я─п╟я┘ я│п╬ я│п©п╣я├п╦п╟п╩я▄п╫п╬ п╢п╬п╠п╟п╡п╩п╣п╫п╫п╬п╧ п©п╬п╢п╢п╣я─п╤п╨п╬п╧ STREAMS, п╦ п╪п╬пЁя┐я┌ п╫п╦п╨п╬пЁп╢п╟ п╫п╣ п©п╬я▐п╡п╦я┌я▄я│я▐ п╡ я│я┌п╟п╫п╢п╟я─я┌п╫п╬п╪ я▐п╢я─п╣.
п╖п╟я┴п╣ п╡я│п╣пЁп╬, п╨п╬п╢ я│п╦я│я┌п╣п╪п╫п╬пЁп╬ п╡я▀п╥п╬п╡п╟ я│ п╫п╬п╪п╣я─п╬п╪ __NR_xxx, п╬п©я─п╣п╢п╣п╩я▒п╫п╫п╬пЁп╬ п╡ /usr/include/asm/unistd.h, п╪п╬п╤п╫п╬ п╫п╟п╧я┌п╦ п╡ п╦я│я┘п╬п╢п╫п╬п╪ п╨п╬п╢п╣ я▐п╢я─п╣ п╡ я└я┐п╫п╨я├п╦п╦ sys_xxx(). (п╒п╟п╠п╩п╦я├я┐ п╡я▀п╥п╬п╡п╬п╡ п╢п╩я▐ i386 п╪п╬п╤п╫п╬ п╫п╟п╧я┌п╦ п╡ /usr/src/linux/arch/i386/kernel/entry.S.) п∙я│я┌я▄ п╪п╫п╬пЁп╬ п╦я│п╨п╩я▌я┤п╣п╫п╦п╧ п╦п╥ я█я┌п╬пЁп╬ п©я─п╟п╡п╦п╩п╟, п╡ п╬я│п╫п╬п╡п╫п╬п╪ п╦п╥-п╥п╟ я┌п╬пЁп╬, я┤я┌п╬ п╠п╬п╩я▄я┬п╦п╫я│я┌п╡п╬ я│я┌п╟я─я▀я┘ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡ п╥п╟п╪п╣п╫п╣п╫п╟ п╫п╟ п╫п╬п╡я▀п╣, п©я─п╦ я┤я▒п╪ п╠п╣п╥ п╡я│я▐п╨п╬п╧ я│п╦я│я┌п╣п╪я▀. п²п╟ п©п╩п╟я┌я└п╬я─п╪п╟я┘ я│ я█п╪я┐п╩я▐я├п╦п╣п╧ я│п╬п╠я│я┌п╡п╣п╫п╫п╦я┤п╣я│п╨п╦я┘ п·п║, я┌п╟п╨п╦я┘ п╨п╟п╨ parisc, sparc, sparc64 п╦ alpha, я│я┐я┴п╣я│я┌п╡я┐п╣я┌ п╪п╫п╬пЁп╬ п╢п╬п©п╬п╩п╫п╦я┌п╣п╩я▄п╫я▀я┘ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡; п╢п╩я▐ mips64 я┌п╟п╨п╤п╣ п╣я│я┌я▄ п©п╬п╩п╫я▀п╧ п╫п╟п╠п╬я─ 32-п╠п╦я┌п╫я▀я┘ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡.
п║ я┌п╣я┤п╣п╫п╦п╣п╪ п╡я─п╣п╪п╣п╫п╦ п©я─п╦ п╫п╣п╬п╠я┘п╬п╢п╦п╪п╬я│я┌п╦ п©я─п╬п╦я│я┘п╬п╢п╦п╩п╦ п╦п╥п╪п╣п╫п╣п╫п╦я▐ п╡ п╦п╫я┌п╣я─я└п╣п╧я│п╣ п╫п╣п╨п╬я┌п╬я─я▀я┘ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡. п·п╢п╫п╬п╧ п╦п╥ п©я─п╦я┤п╦п╫ я┌п╟п╨п╦я┘ п╦п╥п╪п╣п╫п╣п╫п╦п╧ п╠я▀п╩п╟ п╫п╣п╬п╠я┘п╬п╢п╦п╪п╬я│я┌я▄ я┐п╡п╣п╩п╦я┤п╣п╫п╦я▐ я─п╟п╥п╪п╣я─п╟ я│я┌я─я┐п╨я┌я┐я─ п╦п╩п╦ я│п╨п╟п╩я▐я─п╫я▀я┘ п╥п╫п╟я┤п╣п╫п╦п╧ п©п╣я─п╣п╢п╟п╡п╟п╣п╪я▀я┘ я│п╦я│я┌п╣п╪п╫п╬п╪я┐ п╡я▀п╥п╬п╡я┐. п≤п╥-п╥п╟ я█я┌п╦я┘ п╦п╥п╪п╣п╫п╣п╫п╦п╧ п©п╬я▐п╡п╦п╩п╦я│я▄ я─п╟п╥п╩п╦я┤п╫я▀п╣ пЁя─я┐п©п©я▀ п©п╬я┘п╬п╤п╦я┘ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡ (п╫п╟п©я─п╦п╪п╣я─, truncate(2) п╦ truncate64(2)), п╨п╬я┌п╬я─я▀п╣ п╡я▀п©п╬п╩п╫я▐я▌я┌ п╬п╢п╦п╫п╟п╨п╬п╡я▀п╣ п╥п╟п╢п╟я┤п╦, п╫п╬ п╬я┌п╩п╦я┤п╟я▌я┌я│я▐ я─п╟п╥п╪п╣я─п╬п╪ я│п╡п╬п╦я┘ п╟я─пЁя┐п╪п╣п╫я┌п╬п╡. (п п╟п╨ я┐п╤п╣ п╬я┌п╪п╣я┤п╟п╩п╬я│я▄, п╫п╟ п©я─п╦п╩п╬п╤п╣п╫п╦я▐ я█я┌п╬ п╫п╣ п╡п╩п╦я▐п╣я┌: п╬п╠я▒я─я┌п╬я┤п╫я▀п╣ я└я┐п╫п╨я├п╦п╦ glibc п╡я▀п©п╬п╩п╫я▐я▌я┌ п╫п╣п╨п╬я┌п╬я─я▀п╣ п╢п╣п╧я│я┌п╡п╦я▐ п©п╬ п╥п╟п©я┐я│п╨я┐ п©я─п╟п╡п╦п╩я▄п╫п╬пЁп╬ я│п╦я│я┌п╣п╪п╫п╬пЁп╬ п╡я▀п╥п╬п╡п╟, п╦ я█я┌п╬ п╬п╠п╣я│п©п╣я┤п╦п╡п╟п╣я┌ я│п╬п╡п╪п╣я│я┌п╦п╪п╬я│я┌я▄ п©п╬ ABI п╢п╩я▐ я│я┌п╟я─я▀я┘ п╢п╡п╬п╦я┤п╫я▀я┘ я└п╟п╧п╩п╬п╡.) п÷я─п╦п╪п╣я─я▀ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡, я┐ п╨п╬я┌п╬я─я▀я┘ п╣я│я┌я▄ п╫п╣я│п╨п╬п╩я▄п╨п╬ п╡п╣я─я│п╦п╧:
- п▓ п╫п╟я│я┌п╬я▐я┴п╣п╣ п╡я─п╣п╪я▐ п╣я│я┌я▄ я┌я─п╦ я─п╟п╥п╩п╦я┤п╫я▀п╣ п╡п╣я─я│п╦п╦ stat(2): sys_stat() (п╪п╣я│я┌п╬ __NR_oldstat), sys_newstat() (п╪п╣я│я┌п╬ __NR_stat) п╦ sys_stat64() (п╪п╣я│я┌п╬ __NR_stat64), п©п╬я│п╩п╣п╢п╫я▐я▐ п╦я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ п╡ п╢п╟п╫п╫я▀п╧ п╪п╬п╪п╣п╫я┌. п÷п╬я┘п╬п╤п╟я▐ я│п╦я┌я┐п╟я├п╦я▐ я│ lstat(2) п╦ fstat(2).
- п÷п╬я┘п╬п╤п╦п╪ п╬п╠я─п╟п╥п╬п╪ п╬п©я─п╣п╢п╣п╩п╣п╫я▀ __NR_oldolduname, __NR_olduname п╦__NR_uname п╢п╩я▐ п╡я▀п╥п╬п╡п╬п╡ sys_olduname(), sys_uname() п╦ sys_newuname().
- п▓ Linux 2.0 п©п╬я▐п╡п╦п╩п╟я│я▄ п╫п╬п╡п╟я▐ п╡п╣я─я│п╦я▐ vm86(2), п╫п╬п╡п╟я▐ п╦ я│я┌п╟я─п╟я▐ п╡п╣я─я│п╦п╦ я▐п╢п╣я─п╫я▀я┘ п©я─п╬я├п╣п╢я┐я─ п╫п╟п╥я▀п╡п╟я▌я┌я│я▐ sys_vm86old() п╦ sys_vm86().
- п▓ Linux 2.4 п©п╬я▐п╡п╦п╩п╟я│я▄ п╫п╬п╡п╟я▐ п╡п╣я─я│п╦я▐ getrlimit(2) п╫п╬п╡п╟я▐ п╦ я│я┌п╟я─п╟я▐ п╡п╣я─я│п╦п╦ я▐п╢п╣я─п╫я▀я┘ п©я─п╬я├п╣п╢я┐я─ п╫п╟п╥я▀п╡п╟я▌я┌я│я▐ sys_old_getrlimit() (п╪п╣я│я┌п╬ __NR_getrlimit) п╦ sys_getrlimit() (п╪п╣я│я┌п╬ __NR_ugetrlimit).
- п▓ Linux 2.4 я┐п╡п╣п╩п╦я┤п╣п╫п╬ я─п╟п╥п╪п╣я─ п©п╬п╩я▐ ID п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩п╣п╧ п╦ пЁя─я┐п©п© я│ 16 п╢п╬ 32 п╠п╦я┌. п■п╩я▐ п©п╬п╢п╢п╣я─п╤п╨п╦ я█я┌п╬пЁп╬ п╦п╥п╪п╣п╫п╣п╫п╦я▐ п╢п╬п╠п╟п╡п╩п╣п╫п╬ п╫п╣я│п╨п╬п╩я▄п╨п╬ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡ (п╫п╟п©я─п╦п╪п╣я─, chown32(2), getuid32(2), getgroups32(2), setresuid32(2)), я┐п©я─п╟п╥п╢п╫я▐я▌я┴п╦я┘ я─п╟п╫п╫п╦п╣ п╡я▀п╥п╬п╡я▀ я│ я┌п╣п╪п╦ п╤п╣ п╦п╪п╣п╫п╟п╪п╦, п╫п╬ п╠п╣п╥ я│я┐я└я└п╦п╨я│п╟ "32".
- п▓ Linux 2.4
п╢п╬п╠п╟п╡п╩п╣п╫п╟
п©п╬п╢п╢п╣я─п╤п╨п╟
п╢п╬я│я┌я┐п©п╟
п╨
п╠п╬п╩я▄я┬п╦п╪
я└п╟п╧п╩п╟п╪
(я┐
п╨п╬я┌п╬я─я▀я┘
я─п╟п╥п╪п╣я─я▀
п╦
я│п╪п╣я┴п╣п╫п╦я▐
п╫п╣
я┐п╪п╣я┴п╟я▌я┌я│я▐
п╡ 32
п╠п╦я┌п╟)
п╡
п©я─п╦п╩п╬п╤п╣п╫п╦я▐я┘
п╫п╟
32-п╠п╦я┌п╫я▀я┘
п╟я─я┘п╦я┌п╣п╨я┌я┐я─п╟я┘.
п■п╩я▐
я█я┌п╬пЁп╬
п©п╬я┌я─п╣п╠п╬п╡п╟п╩п╬я│я▄
п╡п╫п╣я│я┌п╦
п╦п╥п╪п╣п╫п╣п╫п╦я▐
п╡
я│п╦я│я┌п╣п╪п╫я▀п╣
п╡я▀п╥п╬п╡я▀,
я─п╟п╠п╬я┌п╟я▌я┴п╦п╣
я│
я─п╟п╥п╪п╣я─п╟п╪п╦
п╦
я│п╪п╣я┴п╣п╫п╦я▐п╪п╦
п©п╬
я└п╟п╧п╩п╟п╪.
п▒я▀п╩п╦
п╢п╬п╠п╟п╡п╩п╣п╫я▀
я│п╩п╣п╢я┐я▌я┴п╦п╣
я│п╦я│я┌п╣п╪п╫я▀п╣
п╡я▀п╥п╬п╡я▀:
fcntl64(2), ftruncate64(2), getdents64(2),
stat64(2), statfs64(2) п╦
п╦я┘
п╟п╫п╟п╩п╬пЁп╦,
п╨п╬я┌п╬я─я▀п╣
п╬п╠я─п╟п╠п╟я┌я▀п╡п╟я▌я┌
я└п╟п╧п╩п╬п╡я▀п╣
п╢п╣я│п╨я─п╦п©я┌п╬я─я▀
п╦п╩п╦
я│п╦п╪п╡п╬п╩п╦я┤п╣я│п╨п╦п╣
я│я│я▀п╩п╨п╦.
п╜я┌п╦
я│п╦я│я┌п╣п╪п╫я▀п╣
п╡я▀п╥п╬п╡я▀
я┐п©я─п╟п╥п╢п╫я▐я▌я┌
я│я┌п╟я─я▀п╣
я│п╦я│я┌п╣п╪п╫я▀п╣
п╡я▀п╥п╬п╡я▀,
п╨п╬я┌п╬я─я▀п╣,
п╥п╟
п╦я│п╨п╩я▌я┤п╣п╫п╦п╣п╪
п╡я▀п╥п╬п╡п╬п╡
"stat",
п╫п╟п╥я▀п╡п╟я▌я┌я│я▐
я┌п╟п╨п╤п╣,
п╫п╬ п╫п╣
п╦п╪п╣я▌я┌
я│я┐я└я└п╦п╨я│п╟
"64".
п²п╟ п╫п╬п╡я▀я┘ п©п╩п╟я┌я└п╬я─п╪п╟я┘, п╨п╬я┌п╬я─я▀п╣ п╦п╪п╣я▌я┌ 64-п╠п╦я┌п╫я▀п╧ п╢п╬я│я┌я┐п© п╨ я└п╟п╧п╩п╟п╪ п╦ 32-п╠п╦я┌п╫я▀п╣ uid (п╫п╟п©я─п╦п╪п╣я─, alpha, ia64, s390x), п╫п╣я┌ п╫п╦ *64 п╫п╦ *32 п╡я▀п╥п╬п╡п╬п╡. п╒п╟п╪, пЁп╢п╣ п╣я│я┌я▄ *64 п╦ *32 п╡я▀п╥п╬п╡я▀, п╢я─я┐пЁп╦п╣ п╡п╣я─я│п╦п╦ я│я┤п╦я┌п╟я▌я┌я│я▐ я┐я│я┌п╟я─п╣п╡я┬п╦п╪п╦.
- п▓я▀п╥п╬п╡я▀ rt_sig* п╢п╬п╠п╟п╡п╩п╣п╫я▀ п╡ я▐п╢я─п╬ 2.2 п╢п╩я▐ п©п╬п╢п╢п╣я─п╤п╨п╦ п╢п╬п©п╬п╩п╫п╦я┌п╣п╩я▄п╫я▀я┘ я│п╦пЁп╫п╟п╩п╬п╡ я─п╣п╟п╩я▄п╫п╬пЁп╬ п╡я─п╣п╪п╣п╫п╦ (я│п╪. signal(7)). п╜я┌п╦ я│п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ я┐п©я─п╟п╥п╢п╫я▐я▌я┌ я│я┌п╟я─я▀п╣ я│п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ я│ я┌п╣п╪п╦ п╤п╣ п╦п╪п╣п╫п╟п╪п╦, п╫п╬ п╠п╣п╥ п©я─п╣я└п╦п╨я│п╟ "rt_".
- п▓ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╟я┘ select(2) п╦ mmap(2) п╦я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п©я▐я┌я▄ п╦п╩п╦ п╠п╬п╩п╣п╣ п╟я─пЁя┐п╪п╣п╫я┌п╬п╡, я┤я┌п╬ п╡я▀п╥я▀п╡п╟п╩п╬ п©я─п╬п╠п╩п╣п╪я▀ п╬п©я─п╣п╢п╣п╩п╣п╫п╦я▐ я│п©п╬я│п╬п╠п╟ п©п╣я─п╣п╢п╟я┤п╦ п╟я─пЁя┐п╪п╣п╫я┌п╬п╡ п╫п╟ i386. п▓ я│п╩п╣п╢я│я┌п╡п╦п╦ я█я┌п╬пЁп╬, я┌п╬пЁп╢п╟ п╨п╟п╨ п╫п╟ п╢я─я┐пЁп╦я┘ п╟я─я┘п╦я┌п╣п╨я┌я┐я─п╟я┘ п╡я▀п╥п╬п╡я▀ sys_select() п╦ sys_mmap() я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐я▌я┌ __NR_select п╦ __NR_mmap, п╫п╟ i386 п╬п╫п╦ я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐я▌я┌ old_select() п╦ old_mmap() (п©я─п╬я├п╣п╢я┐я─я▀, п╦я│п©п╬п╩я▄п╥я┐я▌я┴п╦п╣ я┐п╨п╟п╥п╟я┌п╣п╩я▄ п╫п╟ п╠п╩п╬п╨ п╟я─пЁя┐п╪п╣п╫я┌п╬п╡). п▓ п╫п╟я│я┌п╬я▐я┴п╣п╣ п╡я─п╣п╪я▐ п╠п╬п╩я▄я┬п╣ п╫п╣я┌ п©я─п╬п╠п╩п╣п╪я▀ я│ п©п╣я─п╣п╢п╟я┤п╣п╧ п╠п╬п╩п╣п╣ п©я▐я┌п╦ п╟я─пЁя┐п╪п╣п╫я┌п╬п╡ п╦ п╣я│я┌я▄ __NR__newselect, п╨п╬я┌п╬я─я▀п╧ я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐п╣я┌ п╦п╪п╣п╫п╫п╬ sys_select(), п╦ я┌п╟п╨п╟я▐ п╤п╣ я│п╦я┌я┐п╟я├п╦я▐ я│ __NR_mmap2.
п║п°п·п╒п═п≤п╒п∙ п╒п░п п√п∙¶
2009-05-06 | Linux |